<template>
  <div class="barChart"></div>
</template>

<script>
export default {
  name: "",

  props: ["config"],
  data() {
    return {};
  },
  methods: {
    setChart() {
      let option = {
        tooltip: {
          trigger: "axis",
          axisPointer: {
            // 坐标轴指示器，坐标轴触发有效
            type: "shadow", // 默认为直线，可选为：'line' | 'shadow'
          },
          backgroundColor: "rgba(11, 41, 116, 0.2)",
          borderColor: "rgba(11, 41, 116, 0.2)",
          textStyle: {
            color: "#fff",
          },
        },
        legend: [
          {
            right: "10",
            top: "-6",
            itemWidth: 7,
            itemHeight: 7,
            textStyle: {
              color: "#fff",
              fontSize: 12,
            },
          },
        ],
        grid: {
          top: "12%",
          bottom: this.config.xdata.length > 10 ? 70 : 40,
          left: "10%",
          right: "10%",
          containLabel: false,
        },
        xAxis: [
          {
            type: "category",

            axisLine: {
              symbol: ["none", "arrow"],
              symbolSize: [6, 6],
              symbolOffset: [0, 0],
              lineStyle: {
                color: "#122C49",
              },
            },
            axisTick: { show: false },
            axisLabel: {
              color: "#D6E1FF",
              fontSize: 10,
              interval: 0,
            },
            data: this.config.xdata,
          },
        ],
        dataZoom: [
          // 添加 dataZoom 组件
          {
            show: this.config.xdata.length > 10 ? true : false, // 是否显示滑动条
            xAxisIndex: 0, // 这里是从X轴的0刻度开始
            startValue: 0, // 数据窗口范围的起始数值
            endValue: 10, // 数据窗口范围的结束数值(一次性展示几个)
          },
        ],
        yAxis: [
          {
            type: "value",
            name: "",
            min: 0,
            nameTextStyle: {
              color: "#D6E1FF",
              fontSize: 12,
            },
            axisLine: {
              lineStyle: {
                color: "#0a3e98",
              },
            },
            axisTick: {
              show: false,
            },
            splitLine: {
              show: false,
              lineStyle: {
                color: "#0a3e98",
                type: "dotted",
              },
            },
            axisLabel: {
              formatter: "{value}",
              textStyle: {
                color: "#D6E1FF",
                fontSize: 12,
              },
            },
          },
          {
            type: "value",
            name: "",
            min: 0,
            nameTextStyle: {
              color: "#D6E1FF",
              fontSize: 12,
            },
            axisLine: {
              lineStyle: {
                color: "#0a3e98",
              },
            },
            axisTick: {
              show: false,
            },
            splitLine: {
              show: false,
              lineStyle: {
                color: "#0a3e98",
                type: "dotted",
              },
            },
            axisLabel: {
              formatter: "{value}",
              textStyle: {
                color: "#fff",
                fontSize: 12,
              },
            },
          },
        ],
        series: [
          {
            name: this.config.series[0].name,
            type: "bar",
            itemStyle: {
              color: {
                type: "linear",
                x: 0,
                y: 0,
                x2: 0,
                y2: 1,
                colorStops: [
                  {
                    offset: 0,
                    color: "#5AD8A6", // 0% 处的颜色
                  },
                  {
                    offset: 0.4,
                    color: "#5AD8A6", // 40% 处的颜色
                  },
                  {
                    offset: 1,
                    color: "#5AD8A6", // 100% 处的颜色
                  },
                ],
                global: false, // 缺省为 false
              }, //背景渐变色
            },
            barWidth: 10,
            barCategoryGap: 10,
            data: this.config.series[0].data,
          },
          {
            name: this.config.series[1].name,
            type: "line",
            yAxisIndex: 1,
            symbol: "circle", // 默认是空心圆（中间是白色的），改成实心圆
            smooth: true,
            lineStyle: {
              normal: {
                width: 3,
                color: "#2391FF", // 线条颜色
              },
            },
            itemStyle: {
              normal: {
                color: "#2391FF", //拐点颜色
                borderColor: "#2db6e9", //拐点边框颜色
                borderWidth: 3, //拐点边框大小
                // label: {
                //    show: true, //开启显示
                //    color: '#fff',
                //    position: 'top', //在上方显示
                //    formatter: function (res) {
                //       if (res.value) {
                //          return res.value
                //       } else {
                //          return 0
                //       }
                //    },
                // },
              },
            },
            symbolSize: 2, //设定实心点的大小

            data: this.config.series[1].data,
          },
        ],
      };
      let myChart = this.$echarts(this.$el);

      myChart.clear();
      myChart.resize();
      myChart.setOption(option);
    },
  },
  mounted() {
    this.setChart();
    console.log(this.config.xdata);
  },
};
</script>

<style lang="less" scoped>
.barChart {
  width: 100%;
  margin-top: 3%;
  height: 90%;
}
</style>
